﻿&НаКлиенте
Процедура Сформировать(Команда)
	СформироватьНаСервере();
КонецПроцедуры

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
	СформироватьНаСервере();
КонецПроцедуры

&НаСервере
Процедура СформироватьНаСервере()
	
	ОтчетОбъект = РеквизитФормыВЗначение("Отчет");
	СхемаКомпоновки =  ОтчетОбъект.ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных");
	ДанныеРасшифровкиКомпоновкиДанных = Новый ДанныеРасшифровкиКомпоновкиДанных; 
	
    КомпоновщикМакетаКомпоновкиДанных = Новый КомпоновщикМакетаКомпоновкиДанных;
    МакетКомпоновкиДанных = КомпоновщикМакетаКомпоновкиДанных.Выполнить(СхемаКомпоновки,
								Отчет.КомпоновщикНастроек.ПолучитьНастройки(), 
								ДанныеРасшифровкиКомпоновкиДанных);
    ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;
    ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновкиДанных,, ДанныеРасшифровкиКомпоновкиДанных, Истина);
    ПроцессорВыводаРезультата = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
	
	РезультатОтчета = Новый ТабличныйДокумент;  
	
    ПроцессорВыводаРезультата.УстановитьДокумент(РезультатОтчета);
    ПроцессорВыводаРезультата.Вывести(ПроцессорКомпоновкиДанных);
		
	ЗаполнитьДиаграммы(РезультатОтчета, ДанныеРасшифровкиКомпоновкиДанных);
КонецПроцедуры

&НаСервере
Процедура ЗаполнитьДиаграммы(РезультатОтчета, ДанныеРасшифровкиКомпоновкиДанных)
	
	
	ДиаграммаПоПериодам = РезультатОтчета.Рисунки[0].Объект;
	
	Если ДанныеРасшифровкиПоПериодам = "" Тогда
		ДанныеРасшифровкиПоПериодам = ПоместитьВоВременноеХранилище(ДанныеРасшифровкиКомпоновкиДанных, 
																	УникальныйИдентификатор);
	Иначе																		   
	 	ПоместитьВоВременноеХранилище(ДанныеРасшифровкиКомпоновкиДанных, ДанныеРасшифровкиПоПериодам);
	КонецЕсли;
		
	
	ДиаграммаПоТоварам = РезультатОтчета.Рисунки[1].Объект;
	
	Если ДанныеРасшифровкиПоТоварам = "" Тогда
		ДанныеРасшифровкиПоТоварам = ПоместитьВоВременноеХранилище(ДанныеРасшифровкиКомпоновкиДанных, 
																   УникальныйИдентификатор);
	Иначе																		   
	 	ПоместитьВоВременноеХранилище(ДанныеРасшифровкиКомпоновкиДанных, ДанныеРасшифровкиПоТоварам);
	КонецЕсли;
		
КонецПроцедуры

&НаСервере
Функция РасшифровкаВЗначение(Расшифровка, ДанныеРасшифровкиКомпоновкиДанных)
	
	Если ТипЗнч(Расшифровка) = Тип("ИдентификаторРасшифровкиКомпоновкиДанных") Тогда
		ЭлементРасшифровки = ДанныеРасшифровкиКомпоновкиДанных.Элементы[Расшифровка];
		Если ТипЗнч(ЭлементРасшифровки) = Тип("ЭлементРасшифровкиКомпоновкиДанныхПоля") Тогда
			Для каждого Поле Из ЭлементРасшифровки.ПолучитьПоля() Цикл
				Возврат Поле.Значение;
			КонецЦикла;
		КонецЕсли;
	КонецЕсли;
	
	Возврат Неопределено;
КонецФункции

&НаКлиенте
Процедура ДиаграммаПоПериодамОбработкаРасшифровки(Элемент, Расшифровка, СтандартнаяОбработка)
	СтандартнаяОбработка = Ложь;
КонецПроцедуры

&НаКлиенте
Процедура ДиаграммаПоТоварамОбработкаРасшифровки(Элемент, Расшифровка, СтандартнаяОбработка)
	СтандартнаяОбработка = Ложь;
КонецПроцедуры
